package com.example.pomelo_home.controller;

import com.example.pomelo_home.dto.ActivityDTO;
import com.example.pomelo_home.dto.OrderCountByDateDto;
import com.example.pomelo_home.dto.OrderDTO;
import com.example.pomelo_home.service.OrderService;
import com.example.pomelo_home.utils.Result;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;

import java.util.List;

@RestController
@RequestMapping("/order")
public class OrderController {
    @Autowired
    OrderService orderService;

    //统计图：订单模块（管理）
    @GetMapping("/count-by-date-range")
    public List<OrderCountByDateDto> getCountByDateRange() {
        return orderService.getCountByDateRange();
    }

    //分页查询所有订单（管理）
    @GetMapping("/findAllByPaged")
    public Result findAllByPaged(Integer page, Integer size){
        return Result.success(orderService.findAllByPaged(page,size));
    }
    //分类(活动名、订单状态)查询订单（管理）
    @GetMapping("findByLike")
    public Result findAllByLike(OrderDTO orderDTO) {
        if(orderDTO.getActivityTitle()==null&&orderDTO.getOrderStatus()==null){
            return Result.success(orderService.findAllByPaged(orderDTO.getPage(),orderDTO.getSize()));
        }
        return Result.success(orderService.findByLike(orderDTO));
    }
    //审核订单（管理）
    @GetMapping("audit")
    public Result audit(Integer orderId) {
        int result=orderService.audit(orderId);
        if(result!=0){
            return Result.success();
        }
        return Result.error();
    }
    //删除订单（管理）
    @GetMapping("deleteOrder")
    public Result deleteOrder(Integer orderId) {
        int result=orderService.deleteOrder(orderId);
        if(result!=0){
            return Result.success();
        }
        return Result.error();
    }
    //订单报名（小程序）
    @GetMapping("Application")
    public Result Application(OrderDTO orderDTO) {
        int result=orderService.Application(orderDTO);
        if(result!=0){
            return Result.success();
        }
        return Result.error();
    }
    //查询所有订单（小程序）
    @GetMapping("/findAllOrder")
    public Result findAll() {
        return Result.success(orderService.findAllOrder());
    }
    //删除订单（小程序）
    @GetMapping("delete")
    public Result delete(Integer orderId) {
        int result=orderService.delete(orderId);
        if(result!=0){
            return Result.success();
        }
        return Result.error();
    }
    //取消订单（小程序）
    @GetMapping("cancel")
    public Result cancel(Integer orderId) {
        int result=orderService.cancel(orderId);
        if(result!=0){
            return Result.success();
        }
        return Result.error();
    }
    //支付订单（小程序）
    @GetMapping("pay")
    public Result pay(Integer orderId) {
        int result=orderService.pay(orderId);
        if(result!=0){
            return Result.success();
        }
        return Result.error();
    }
}
